// 导入配置好基础地址的axios实例
import request from '@/utils/request';

// 1. 商品相关接口
export const productAPI = {
  // 获取商品列表
  getList: (params) => request({
    url: '/products', // 移除/api前缀，因为request.js中已配置
    method: 'get',
    params
  }),

  // 获取商品详情
  getDetail: (id) => request({
    url: `/products/${id}`, // 移除/api前缀
    method: 'get'
  })
};

// 2. 分类相关接口
export const categoryAPI = {
  // 获取分类列表
  getList: () => request({
    url: '/categories', // 移除/api前缀
    method: 'get'
  })
};

// 3. 用户相关接口
// 用户相关接口
export const userAPI = {
  // 用户登录
  login: (data) => request({
    url: '/auth/login',
    method: 'post',
    data
  }),

  // 获取当前用户信息
  getCurrent: () => request({
    url: '/users/current',
    method: 'get'
  }),

  // 获取短信验证码
  getSmsCaptcha: (data) => request({
    url: '/auth/sms-captcha',
    method: 'post',
    data
  })
};

// 4. 地址相关接口
export const addressAPI = {
  // 获取地址列表
  getList: () => request({
    url: '/addresses',
    method: 'get'
  }),

  // 添加地址
  add: (data) => request({
    url: '/addresses',
    method: 'post',
    data
  })
};

// 5. 购物车相关接口
export const cartAPI = {
  // 获取购物车列表
  getList: () => request({
    url: '/cart',
    method: 'get'
  }),

  // 添加商品到购物车
  add: (data) => request({
    url: '/cart',
    method: 'post',
    data
  }),

  // 更新购物车商品
  update: (id, data) => request({
    url: `/cart/${id}`,
    method: 'put',
    data
  }),

  // 删除购物车商品
  delete: (id) => request({
    url: `/cart/${id}`,
    method: 'delete'
  })
};

// 6. 订单相关接口
export const orderAPI = {
  // 创建订单
  create: (data) => request({
    url: '/orders',
    method: 'post',
    data
  }),

  // 获取订单列表
  getList: (params) => request({
    url: '/orders',
    method: 'get',
    params
  }),

  // 获取订单详情
  getDetail: (id) => request({
    url: `/orders/${id}`,
    method: 'get'
  })
};

// 7. 支付相关接口
export const paymentAPI = {
  // 创建支付
  create: (data) => request({
    url: '/payments',
    method: 'post',
    data
  })
};

// 8. 搜索相关接口
export const searchAPI = {
  /**
   * 搜索商品
   * @param {Object} params - 搜索参数
   * @param {string} params.keyword - 搜索关键词
   * @param {number} params.categoryId - 分类ID（可选）
   * @param {number} params.page - 页码（可选，默认1）
   * @param {number} params.limit - 每页数量（可选，默认10）
   * @param {string} params.sortBy - 排序字段（可选）
   * @param {string} params.order - 排序方式（可选，asc或desc）
   * @returns {Promise} 返回搜索结果
   */
  search: (params) => request({
    url: '/search',
    method: 'get',
    params
  }),

  /**
   * 获取搜索历史
   * @returns {Promise} 返回搜索历史记录
   */
  getHistory: () => request({
    url: '/search/history',
    method: 'get'
  }),

  /**
   * 清除搜索历史
   * @returns {Promise} 返回操作结果
   */
  clearHistory: () => request({
    url: '/search/history',
    method: 'delete'
  }),

  /**
   * 获取热门搜索词
   * @returns {Promise} 返回热门搜索词列表
   */
  getHotWords: () => request({
    url: '/search/hot-words',
    method: 'get'
  })
};
